The present invention relates in general to the generation of sine waves of differing frequencies from a single look-up table and, more particularly, to methods of generating sine waves of differing frequencies from a single look-up table having entries including samples taken at a sampling frequency which is not an integer multiple of a frequency used for transmission of sine waves generated. While the present invention is generally applicable to sine wave generation, it is particularly applicable to the telecommunications industry and will be described herein with reference to a preliminary use of the invention for simplex voiceband digital interface (VDI-1) signaling.
Simplex voiceband digital interface (VDI-1) signaling is used to add features to analog lines served by local exchange company (LEC) central offices (CO's) and private branch exchanges (PBX's). For example, calling number delivery, calling name delivery and calling identity delivery can be provided to customer premises equipment (CPE) from a CO for call waiting by means of VDI-1 signaling. PBX uses of VDI-1 signaling include the control of message waiting lamps on analog lines of a PBX.
The transmission standard used for VDI-1 signaling is well known in the art and is described in AT&T Technical Description AT&T 533-099-002TD, which is incorporated herein by reference. Generally, phase-coherent frequency shift keying (FSK) is used for VDI-1 signaling to send logical ones or marks and logical zeroes or spaces at a 1200 bits per second rate using 1200 hertz and 2200 hertz signals, respectively.
In the prior art, FSK for VDI-1 signaling has required significant additional circuitry or hardware on port circuits used in a CO or PBX to service analog lines, adding substantially to the cost of the port circuits. For example, universal asynchronous receivers and transmitters (UART's) and voltage controlled oscillators (VCO's) or, more commonly, digital signal processors (DSP's) were added to port circuits for VDI-1 signalling services.
In a DSP based port board, a DSP is required in addition to a port circuit processor since a DSP can rapidly perform multiply and multiply-accumulate functions to quickly evaluate sine approximation polynomials, such as a fifth-order Taylor polynomial, to generate a sine wave of a desired frequency for the first quadrant. Trigonometric identities can then be applied to define sine wave values over an entire sine wave cycle, i.e., from 0 to 2.pi.. Such techniques can be used in a DSP for sine wave generation but not in a port circuit processor which cannot perform multiply and multiply-accumulate operations as rapidly.
If signal frequencies other than 1200 hertz and 2200 hertz are needed for analog services, such as 2130 hertz and 2750 hertz for call identity delivery for call waiting service, the other signal frequencies can be added to a DSP based port circuit by updating DSP firmware. Additional signaling frequencies would require a new hardware implementation for a UART/VC0 based port circuit.
Accordingly, a DSP based port circuit is preferred from a versatility standpoint. Unfortunately, if a DSP of a port circuit can not be shared over several ports or be used to perform other operations, such as touch tone.RTM. signal detection, the cost of the DSP for providing VDI-1 signaling services may be prohibitively high.
Low distortion sine waves also can be produced quickly using a look-up table. A direct table look-up can be implemented if the frequencies of the wave forms to be generated are integer multiples of a fundamental table frequency (FTF) such that all required samples are contained within the table and no interpolation is required. If the frequencies of the sine waves to be generated are not integer multiples of the FTF, interpolation is required to minimize harmonic distortion.
Accordingly, a direct table look-up can be implemented to generate a sine wave of frequency f using no multiply or divide operations where a table step .DELTA. is used to index into the table where .DELTA.=f/FTF. FSK signals can then be generated by selecting .DELTA.'s corresponding to the frequencies to be generated.
Unfortunately, a problem arises in some application because the sampling frequency is not an integer multiple of a frequency used for transmission of sine waves generated. For example, in VDI-1 FSK signal generation, the sample rate is 8000 samples per second while the transmission rate is 1200 bits per second. This gives 6 and 2/3 samples per bit period. The table step .DELTA. may be changed every bit period if logical ones and zeroes are alternated in a VDI-1 message.
Such alternation results in a three bit period cycle of 6 samples of one bit frequency followed by 7 samples of the next bit frequency followed by 7 samples of the next bit frequency. This cycle may be repeated until a message is completed. To represent a true 1200 bits per second rate, a correction must also be applied for the "fractional" samples or samples which interface between the first and second bit frequencies, and samples which interface between the second and third bit frequencies. Such corrections and/or interpolations substantially detract from the use of look-up tables for these applications.
Thus, there is a need for an inexpensive port circuit which offers the versatility of a DSP based port circuit without the inherent costs of the DSP to satisfy current and on-going signaling needs for services provided to analog lines using VDI-1 signaling. Preferably, the port circuit would provide all current signaling requirements while permitting convenient adaptations for future signaling needs without requiring revision of the port circuit hardware or the inclusion of a DSP.